package com.txhy.certificatechain.utils;

import android.content.Context;
import android.content.SharedPreferences;

import com.txhy.certificatechain.common.Constants;
import com.txhy.certificatechain.model.bean.UserBean;

/*
 * -----------------------------------------------------------------
 * Copyright (C) 2018-2030, by your company, All rights reserved.
 * -----------------------------------------------------------------
 * 文    件: PrefUtil.java
 * 作    者: 侯建军
 * 版    权: 1.0.0
 * 描    述: SharePreference的封装
 * 创建时间: 2018/9/19 14:59
 * 更新时间：2018/9/19 14:59
 * -----------------------------------------------------------------
 * 2018/9/19 14:59: 创建 PrefUtil.java (侯建军);
 * -----------------------------------------------------------------
 */
public class PrefUtil {
    public static final String PREF_NAME = "config";

    //获取是否登录    true是登录   false是没有登录
    public static boolean getLoginBoolean(Context ctx ){
        try{
            SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                    Context.MODE_PRIVATE);
            return sp.getBoolean(Constants.IS_LOGIN_KEY, false);
        }catch (Exception e){
            return false;
        }

    }
    //设置是否登录   true是登录   false是没有登录
    public static void setLoginBoolean(Context ctx, boolean value) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        sp.edit().putBoolean(Constants.IS_LOGIN_KEY, value).commit();
    }


    //获取个人登录的信息
    public static UserBean getUserString(Context ctx ){
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        return GsonUtil.GsonToBean(sp.getString(Constants.USER_KEY, ""),UserBean.class);
    }

    //获取选中的企业个人
    public static UserBean.DataEntity.MapEntity getUserBean(Context ctx ){

        return   getUserString(ctx).getData().getMap().get(getShengType(ctx));

    }




    //设置个人登录的信息
    public static void setUserString(Context ctx, String value) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        sp.edit().putString(Constants.USER_KEY, value).commit();
    }





    //
    public static int getShengType(Context ctx ){
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        return sp.getInt(Constants.LOAD_SHENFEN, 0);
    }
    //
    public static void setShengType(Context ctx, int value) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        sp.edit().putInt(Constants.LOAD_SHENFEN, value).commit();
    }




    //设置引导页的开启关闭
    public static boolean getWelcomeBoolean(Context ctx) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        return sp.getBoolean(Constants.WELCOME_BOL, false);
    }
    //设置引导页的开启关闭
    public static void setWelcomeBoolean(Context ctx,boolean value) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        sp.edit().putBoolean(Constants.WELCOME_BOL, value).commit();
    }


    //设置登录类型人脸指纹
    public static int getLoadType(Context ctx) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        return sp.getInt(Constants.LOAD_TYPE, 1);
    }
    ///设置登录类型人脸指纹
    public static void setLoadType(Context ctx,int value) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        sp.edit().putInt(Constants.LOAD_TYPE, value).commit();
    }

    //设置支付方式
    public static int getPayType(Context ctx) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        return sp.getInt(Constants.PAY_TYPE, 1);
    }
    ///设置支付方式
    public static void setPayType(Context ctx,int value) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        sp.edit().putInt(Constants.PAY_TYPE, value).commit();
    }





    public static boolean getBoolean(Context ctx, String key,
                                     boolean defaultValue) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        return sp.getBoolean(key, defaultValue);
    }

    public static void setBoolean(Context ctx, String key, boolean value) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        sp.edit().putBoolean(key, value).commit();
    }

    public static String getString(Context ctx, String key, String defaultValue) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        return sp.getString(key, defaultValue);
    }

    public static void setString(Context ctx, String key, String value) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        sp.edit().putString(key, value).commit();
    }

    public static int getInt(Context ctx, String key, int defaultValue) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        return sp.getInt(key, defaultValue);
    }

    public static void setInt(Context ctx, String key, int value) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);
        sp.edit().putInt(key, value).commit();
    }

    public static void clearData(Context ctx, String key) {
        SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
        sp.edit().remove(key).clear().commit();
    }
}
